// 双斜杠代表注释，不参与编译。
/* 还可以用这种方式来注释*/

// 在windows安装一个虚拟机：Vmware
// 在虚拟机安装Ubuntu系统(内核linux)
// 练习基础命令：
// ls,ls –l,cd ../ ./ /,pwd,ifconfig,mkdir,touch,cat,cp,rm,chmod,sudo apt install vim, vi,grep,free,top,ps
// https://blog.csdn.net/weixin_44579687/article/details/124905333
// 就在目录/home/usr/里面做事情。我这里安装了ubuntu后，用户目录是：/home/lxin/。尽量避免用sudo和直接使用root用户。
// ubuntu安装VSCODE(优秀的代码阅读器)：sudo apt install code

// 编写第一个程序：
// https://blog.csdn.net/loveyelong/article/details/124504459

// 在linux环境，c语言用gcc/g++来编译，如
// x86_64-linux-gnu-g++ -o l0000-helloWorld l0000-helloWorld.cpp  -Wall -I./  -pthread -O3
//  gcc是编译工具，-c选项是编译编程.o文件。-o编译执行文件。-I指定头文件路径，-l指定其他库文件。-L指定库文件路径。-D指定宏定义
// 如果gcc不存在，说明gcc没有安装：
// sudo apt-get install gcc
// gcc -v 可以查看版本。

// 头文件包含了函数声明，宏定义，结构体声明，变量声明。
// 比如stdio.h是C语言标准头文件，包含了printf，scanf, fopen函数
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include <unistd.h>

/*
#开头的是预处理指令：
#include
#define
#if
语言标准预先定义的保留字，叫做关键字：
int
if
struct
return
*/

// 一个程序只有一个main函数作为程序初始入口。
// 在进入main之前会先初始化全局变量。
// printf系统函数在stdio.h头文件中声明。因此需要#include <stdio.h>
// int main(void)也是可以的
// 本条头部的int表示返回类型。main是函数名。int argc是第一个参数。char **argv第二个参数。
int main(int argc, char **argv)
{
    // printf是c标准库函数，打印指定格式的内容到终端。()是函数调用标配。"hello world!\n"是一个字符串常量。;表示表达式结束。
    printf("hello world!\n");
    // 因为返回类型是int，因此return 整数;
    return 1;
}

// 输出：
//  ./test a b c
//  hello world!
